home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / src / X11 / wais / ir / cutil.h < prev    next >
C/C++ Source or Header  |  1995-05-09  |  5KB  |  201 lines

  1. /* WIDE AREA INFORMATION SERVER SOFTWARE
  2.    No guarantees or restrictions.  See the readme file for the full standard
  3.    disclaimer.  
  4.   
  5.    3.26.90    Harry Morris, morris@think.com
  6.    4.11.90  HWM - generalized conditional includes (see c-dialect.h)
  7.  *
  8.  * $Log: cutil.h,v $
  9.  * Revision 1.19.1.1  1992/07/11  00:58:07  curtisg
  10.  * Changes for SCO UNIX
  11.  *
  12.  * Revision 1.19  92/03/07  19:44:24  jonathan
  13.  * Added some IBM defines. mycroft@hal.gnu.ai.mit.edu.
  14.  * 
  15.  * Revision 1.18  92/02/21  11:01:07  jonathan
  16.  * Added wais_log_level
  17.  * 
  18.  * Revision 1.17  92/02/16  21:24:25  jonathan
  19.  * Removed macro for waislog under BSD, since vprintf is now part of cutil.c
  20.  * 
  21.  *
  22.  */
  23.  
  24. #ifndef _H_C_util_
  25. #define _H_C_util_
  26.  
  27. #include "cdialect.h"
  28.  
  29. #if defined(ANSI_LIKE) || defined(PROTO_ANSI)
  30. #include <stdarg.h>
  31. #else /* ndef ANSI_LIKE */
  32. #include <varargs.h>
  33. #endif /* ndef ANSI_LIKE */
  34.  
  35. #include <stdio.h>   /* this used to be wrapped in an ifndef NULL, 
  36.             but messed up on some gcc's */
  37. #if defined(THINK_C) || defined(_IBMR2) || defined(M_UNIX)
  38. #include <time.h>
  39. #endif
  40. #if !defined(THINK_C)
  41. #include <sys/time.h>
  42. #endif
  43.  
  44. #define MAX_FILENAME_LEN 255
  45.  
  46. #ifdef ANSI_LIKE
  47. #ifndef EXIT_SUCCESS /* only include it if not already included */
  48. #include <stdlib.h> /* this is a shame */
  49. #endif /* ndef EXIT_SUCCESS */
  50. #else    
  51. #include "ustubs.h"
  52. #endif /* else */
  53.  
  54. /*----------------------------------------------------------------------*/
  55. /* types and constants */
  56.  
  57. #ifndef boolean
  58. #define boolean    unsigned long
  59. #endif /* ndef boolean */ 
  60.  
  61. #ifndef THINK_C
  62. #ifndef Boolean
  63. #define Boolean    boolean
  64. #endif /* ndef Boolean */ 
  65. #endif /* ndef THINK_C */
  66.  
  67. #ifndef true
  68. #define true     (boolean)1L
  69. #endif /* ndef true */
  70.  
  71. #ifndef false
  72. #define false     (boolean)0L   /* used to be (!true), but broke 
  73.                  some compilers */
  74. #endif /* ndef false */
  75.  
  76. #ifndef TRUE
  77. #define TRUE    true
  78. #endif /* ndef TRUE */
  79.  
  80. #ifndef FALSE
  81. #define FALSE    false
  82. #endif /* ndef FALSE */
  83.  
  84. #ifndef NULL
  85. #define NULL    0L
  86. #endif /* ndef NULL */
  87.  
  88. /*----------------------------------------------------------------------*/
  89. /* Fast string macros - warning don't pass NULL to these! */
  90.  
  91. #define STREQ(s1,s2) ((*(s1)==*(s2)) && !strcmp(s1,s2))
  92. #define STRNCMP(s1,s2,n) \
  93.     ((*(s1)==*(s2)) ? strncmp(s1,s2,n) : (*(s1) - *(s2)))
  94.  
  95. /*----------------------------------------------------------------------*/
  96. /* convenience */
  97.  
  98. #define NL() printf("\n")
  99.  
  100. /*----------------------------------------------------------------------*/
  101. /* functions */
  102.  
  103. #ifdef __cplusplus
  104. /* declare these as C style functions */
  105. extern "C"
  106.     {
  107. #endif /* def __cplusplus */
  108.  
  109. /* enhanced memory handling functions - don't call them directly, use the
  110.    macros below */
  111. void    fs_checkPtr _AP((void* ptr));
  112. void*    fs_malloc _AP((size_t size));
  113. void*    fs_realloc _AP((void* ptr,size_t size));
  114. void    fs_free _AP((void* ptr));
  115. char*     fs_strncat _AP((char* dst,char* src,size_t maxToAdd,size_t maxTotal));
  116. char*     fs_strncpy _AP((char* s1,char* s2, long n));
  117.  
  118. /* macros for memory functions.  call these in your program.  */
  119. #define s_checkPtr(ptr)     fs_checkPtr(ptr)
  120. #define s_malloc(size)              fs_malloc(size)
  121. #define s_realloc(ptr,size)    fs_realloc((ptr),(size))
  122. #define s_free(ptr)        { fs_free((char*)ptr); ptr = NULL; }
  123. #define s_strncat(dst,src,maxToAdd,maxTotal)    fs_strncat((dst),(src),(maxToAdd),(maxTotal))
  124. #define s_strncpy(s1,s2,n) fs_strncpy((s1), (s2), (n))
  125.  
  126. char*     s_strdup _AP((char* s));
  127.  
  128. char*    strtokf _AP((char* s1,long (*isDelimiter)(long c))); 
  129. char*   strtokf_isalnum _AP((char* s1));
  130.  
  131. #define IS_DELIMITER    1
  132. #define    NOT_DELIMITER    !IS_DELIMITER
  133.  
  134. #ifdef ANSI_LIKE    /* use ansi */
  135. long        cprintf _AP((boolean print,char* format,...));
  136. #else /* use K & R */
  137. long        cprintf _AP(());
  138. #endif
  139.  
  140. #ifdef ANSI_LIKE    /* use ansi */
  141. void        waislog _AP((long priority, long message, char* format,...));
  142. #else /* use K & R */
  143. void        waislog _AP(());
  144. #endif /* ANSI_LIKE */
  145.  
  146. /* waislog priorities and messages */
  147. /* this is backwards because of how wais_log_level works. */
  148. #define WLOG_HIGH    1
  149. #define WLOG_MEDIUM     5
  150. #define WLOG_LOW    9
  151.  
  152. #define WLOG_CONNECT    1
  153. #define WLOG_CLOSE    2
  154. #define WLOG_SEARCH    3
  155. #define WLOG_RESULTS    4
  156. #define WLOG_RETRIEVE    5
  157. #define WLOG_INDEX    6
  158. #define WLOG_INFO    100
  159. #define WLOG_ERROR    -1
  160. #define WLOG_WARNING    -2
  161.  
  162. void     warn _AP((char* message));
  163.  
  164. boolean substrcmp _AP((char *string1, char *string2));
  165. #ifndef MAX
  166. #define MAX(x,y) (((x) > (y)) ? (x) : (y))
  167. #endif
  168. #ifndef MIN
  169. #define MIN(x,y) (((x) < (y)) ? (x) : (y))
  170. #endif
  171. #define ABS(x) (((x) < 0) ? (-(x)) : (x))
  172.  
  173. char *printable_time _AP((void));
  174.  
  175. char char_downcase _AP((unsigned long ch));
  176. char *string_downcase _AP((char* word));
  177.  
  178.  
  179. char *next_arg _AP((int *argc, char ***argv));
  180. char *peek_arg _AP((int *argc, char ***argv));
  181.  
  182. void        beFriendly _AP((void));
  183.  
  184. #ifdef _C_C_util_
  185. long wais_pid = 0;
  186. long log_line = 0;
  187. long wais_log_level = 10;
  188. #else
  189. extern long wais_pid;
  190. extern long log_line;
  191. extern wais_log_level;
  192. #endif /* _C_C_util_
  193.  
  194. #ifdef __cplusplus
  195.     }
  196. #endif /* def __cplusplus */
  197.  
  198. /*----------------------------------------------------------------------*/
  199.  
  200. #endif /* ndef _H_C_util_ */
  201.